//
//  HZDatePickerView.h
//  自定义选择器
//
//  Created by 天天掌 on 2018/5/16.
//  Copyright © 2018年 WOSHIPM. All rights reserved.
//

#import <UIKit/UIKit.h>


/********************** Color *************************/
#pragma mark - Color
#define UIColorFromRGB(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]
#define kCommonBackgroundColor               UIColorFromRGB(0xf5f5f5)    //用于主标题、分界块背景颜色

/********************** Rect Size *************************/
#pragma mark - Size
//屏幕高度
#define HZKScreenWidth  [[UIScreen mainScreen] bounds].size.width
#define HZKScreenHeight [[UIScreen mainScreen] bounds].size.height
//与iphone6屏幕宽度的单位比例
#define widthB CGRectGetWidth([UIScreen mainScreen].bounds)/375.0f
//与iphone6屏幕高度的单位比例
#define heightB CGRectGetHeight([UIScreen mainScreen].bounds)/667.0f
// 自适应高度和宽度(传入尺寸基于iphone6)
#define Width(width)    (width * widthB)
#define Height(height)  (height * heightB)


/**
 *  日期选择器显示模式。
 */
typedef NS_ENUM(NSInteger, HZDatePickerViewShowModel)
{
    HZDatePickerViewShowModelDefalut,           //显示年，月，日，时，分。
    HZDatePickerViewShowModelYearMonthDayHour,  //显示年，月，日，时。
    HZDatePickerViewShowModelYearMonthDay,      //显示年，月，日。
    HZDatePickerViewShowModelYearMonth,      //显示年，月
    
};

/**
 *  日期选择器时间范围。
 */
typedef NS_ENUM(NSInteger, HZDatePickerViewDateRangeModel) {
    HZDatePickerViewDateRangeModelCurrent,  //最大时间为当前系统时间。用途：例如选择生日的时候不可能大于当前时间。
    HZDatePickerViewDateRangeModelCustom    //自定义时间范围。可通过下面的属性minYear和maxYear设定。
};

@protocol HZDatePickerViewDelegate;



@interface HZDatePickerView : UIView
{}
@property (nonatomic, assign) NSInteger minYear;    //时间列表最小年份，不能大于最大年份。默认为1970年。
@property (nonatomic, assign) NSInteger maxYear;    //时间列表最大年份，不能小于最小年份。默认为当前年份。注意：仅当属性datePickerViewDateRangeModel的值为HZDatePickerViewDateRangeModelCustom时才有效。

@property (nonatomic, strong)UIBarButtonItem *cancelButton;

@property (nonatomic, strong)UIBarButtonItem *completionButton;

@property (nonatomic, assign, readonly, getter=isVisible) BOOL visible; //YES:处于显示状态，NO:处于隐藏状态。

@property (nonatomic, assign) HZDatePickerViewShowModel datePickerViewShowModel; //日期显示模式，默认为HZDatePickerViewShowModelDefalut。

@property (nonatomic, assign) HZDatePickerViewDateRangeModel  datePickerViewDateRangeModel; //时间范围模式，默认为HZDatePickerViewDateRangeModelCurrent。

@property (nonatomic, assign) id<HZDatePickerViewDelegate> delegate;

/**
 *  显示时间选择器。
 *
 *  @param date 初始显示日期，传nil则默认显示当前日期。
 *  @param animation YES:有动画，NO:无动画。
 */
- (void)showViewWithDate:(NSDate *)date animation:(BOOL)animation;

/**
 *  隐藏时间选择器。
 *
 *  @param animation YES:有动画，NO:无动画。
 */
- (void)hideViewWithAnimation:(BOOL)animation;

@end



@protocol HZDatePickerViewDelegate <NSObject>

- (void)datePickerView:(HZDatePickerView *)datePickerView didSelectDate:(id)date;


@end
